home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / pluginy Firefox / 5817 / 5817.xpi / chrome / content / overlays / overlay.js < prev    next >
Text File  |  2010-02-11  |  3KB  |  91 lines

  1. //the advice given at http://blogger.ziesemer.com/2007/10/respecting-javascript-global-namespace.html has been followed
  2. if(!com) var com={};
  3. if(!com.googlecode) com.googlecode={};
  4.  
  5. // The only global object here.
  6. com.googlecode.sqlitemanager = function() {
  7.   //the following are private variables.
  8.  
  9.   //public object returned by this function
  10.   var pub = {};
  11.  
  12.   pub.smChrome = "chrome://sqlitemanager/content/";
  13.  
  14.   // Clean up
  15.   pub.shutdown = function() {
  16.     window.removeEventListener("load", com.googlecode.sqlitemanager.start, false);
  17.     window.removeEventListener("unload", com.googlecode.sqlitemanager.shutdown, false);
  18.   };
  19.  
  20.   //only for firefox
  21.   pub.start = function() {
  22.     var cc = Components.classes;
  23.     var ci = Components.interfaces;
  24.     var md = window.QueryInterface(ci.nsIInterfaceRequestor)
  25.       .getInterface(ci.nsIWebNavigation)
  26.       .QueryInterface(ci.nsIDocShellTreeItem).rootTreeItem
  27.       .QueryInterface(ci.nsIInterfaceRequestor)
  28.       .getInterface(ci.nsIDOMWindow).document;
  29.  
  30.     var prefService = cc["@mozilla.org/preferences-service;1"].getService(ci.nsIPrefService).getBranch("extensions.sqlitemanager.");
  31.     var iVal = prefService.getIntPref("posInTargetApp");
  32.     if (iVal == 0)
  33.       md.getElementById("menuitem-sqlitemanager").setAttribute("hidden", true);
  34.     if (iVal == 1)
  35.       md.getElementById("menuitem-sqlitemanager").setAttribute("hidden", false);
  36.   };
  37.  
  38.   pub.open = function() {
  39.     var iOpenMode = 1;
  40.     try {
  41.       var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.sqlitemanager.");      iOpenMode = prefService.getIntPref("openMode");
  42.     } 
  43.     catch(e) {
  44.     }
  45.  
  46.     switch (iOpenMode) {
  47.       case 1:      //open a chrome window
  48.         this.openInOwnWindow();
  49.         break;
  50.       case 2:      //open in a new tab
  51.         openUILinkIn(this.smChrome,"tab");
  52.         break;
  53.     }
  54.   };
  55.  
  56.   //Sb & Tb
  57.   pub.openInOwnWindow = function() {
  58.     window.open(this.smChrome, "", "chrome,resizable,centerscreen");
  59.     return;
  60.   };
  61.  
  62.   //Ko
  63.   pub.openKo = function() {
  64.     var iOpenMode = 1;
  65.     try {
  66.       var prefService = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.sqlitemanager.");
  67.       iOpenMode = prefService.getIntPref("openMode");
  68.     } 
  69.     catch(e) {
  70.     }
  71.  
  72.     switch (iOpenMode) {
  73.       case 1:      //open a chrome window
  74.         window.openDialog(this.smChrome, 'navigator:browser', 'chrome,all,resizable');
  75.         break;
  76.       case 2:      //open in a new tab
  77.   //      ko.windowManager.openOrFocusDialog(this.smChrome, 'navigator:sm',  'chrome,all,resizable');
  78.         ko.views.manager.doFileOpenAsync(this.smChrome, 'browser');
  79.   //      ko.open.URI(this.smChrome,"browser");
  80.         break;
  81.     }
  82.   };
  83.  
  84.   return pub;
  85. }();
  86.  
  87. // Register handlers to maintain extension life cycle.
  88. //window.addEventListener("load", sqlitemanager.start, false);
  89. //window.addEventListener("unload", sqlitemanager.shutdown, false);
  90.  
  91.